作者:321 | 来源:互联网 | 2023-05-18 17:04
表结构:Companies(单位表)------------------idcompanyNameDepartCategories(单位分类)-----------
表结构:
Companies(单位表)
------------------
id
companyName
DepartCategories(单位分类)
---------------------------
id
categoryName
companyID (外键--单位表)
DepartMents(部门表)
--------------------
id
departMentName
departCategoryID(外键--单位分类)
car (汽车表)
------------
id
carName
carNumber
departMentID(外键--部门表)
maintenaces(汽车维修记录)
---------------------------
id 主键
carid 外键
repairdate 报修日期
price 金额
目前:select id,carid,repairdate,price from maintenaces
返回结果:
id carid repairdate price
----------- ----------- ----------------------- ---------------------------------------
1 1 2008-07-20 00:00:00.000 250.00
2 2 2008-05-09 00:00:00.000 10.00
3 4 2007-10-09 00:00:00.000 20.00
4 2 2008-10-09 00:00:00.000 20.00
7 1 2008-06-21 00:00:00.000 0.00
9 1 2008-08-02 00:00:00.000 0.00
10 1 2008-06-21 00:00:00.000 800.00
11 2 2008-05-22 00:00:00.000 0.00
12 1 2008-07-23 00:00:00.000 0.00
我想统计单车(查询一个车)全部车的年,半年,季,月的维修记录费用汇总报表,结构如下:
序号 汽车名称 汽车牌号 使用部门 总计金额
1.如何用一个存储过程实现上述功能?
2。我用上面的maintenaces表测试如下
declare @year char(4)
set @year='2008'
declare @Month char(1)
set @MOnth='6'
select c.carName 汽车名称,c.carnumber 汽车牌号,d.departmentName 使用部门,sum(m.price) as 金额总计
from
Maintenaces m inner join cars c on m.carid = c.id
inner join departMents d on c.departMentID = d.id
inner join DepartCategories dc on d.departCategoryID = dc.id
inner join Companies cp on dc.companyID = cp.id
where YEAR(m.repairDate) = @year and
Month(m.repairDate) = @Month
group by c.carname,c.carnumber,d.departmentName
显示
汽车名称 汽车牌号 使用部门 金额总计
--------------------------------------------
大轿车 晋C10695 汽车队 800.00
可将上面的参数@Month设置为10,查询为空
汽车名称 汽车牌号 使用部门 金额总计
--------------------------------------------
7 个解决方案
老大们,速度真快呀,呵呵
Companies(单位表)
DepartCategories(单位分类)
DepartMents(部门表)
car (汽车表)
maintenaces(汽车维修记录)
很简单,层层是级联的关系,原先不想要这么多,可需要上述的分类查询,只能这样了
to Haiwer 海阔天空,我试了试上面的还是查询2008年10月的记录时为空
另外
我想统计单车(查询一个车)全部车的年,半年,季,月的维修记录费用汇总报表,结构如下:
序号 汽车名称 汽车牌号 使用部门 总计金额
1.如何用一个存储过程实现上述功能?
declare @Month char(1)改成 char(2) 就好了
另外
我想统计单车(查询一个车)全部车的年,半年,季,月的维修记录费用汇总报表,结构如下:
序号 汽车名称 汽车牌号 使用部门 总计金额
1.如何用一个存储过程实现上述功能?
是呀,要是 年,半年,季,月的维修记录费用汇总,在一个存储过程中,这些参数根据条件动态变化,如何实现,
如按季或月或半年,前提年参数一定要有